![]() |
PATH![]() |
Endpoints are the terminus of a communication flow between a USB device and the host. Endpoints are a logical point inside the USB device to which the host may attach a pipe to initiate communication with a USB device. Endpoints represent a specific data connection where interfaces represent a larger functional connection.
Endpoint 0 has a special responsibility. It is used for USB device initialization and configuration. All USB devices must support a default endpoint 0. Endpoint 0 supports control transfers which provide control pipe access to device descriptors and control requests to modify the device's behavior.
Non-0 endpoints are endpoints greater than 0. Low speed functions are limited to two optional endpoints beyond the required endpoint 0. Higher speed devices can have additional endpoints. However, no more than 16 input endpoints and 16 output endpoints. Endpoint 0 is used as both an input and output endpoint, which leaves a total of 15 each for input and output endpoints (0 through 15 = 16).
A non-0 endpoint is not available for use until it is configured by the startup configuration process when the device is attached to the USB.
Non-0 endpoints are not unique across device configurations. Endpoint numbers are defined by the device vendor in a configuration descriptor for the device. The associated interface or function associated with an endpoint number may be different for the same endpoint number in different devices. You should not count on endpoint numbers being identical from device to device for a given interface.
Previous | Back Up One Level | Next |